Controlling telephony applications from a personal computer is normally accomplished using a dedicated “softphone” piece of software which is installed on a computer. The software enables a user to control either a physical handset which is connected to a private branch exchange (PBX) or a virtual telephony application on the computer from which the user can make or receive calls again via a PBX.
One major requirement of any telephony application such as this is that it can receive unsolicited events. For example, if an incoming call is made to the user's extension, means must be provided for changing the state of the software to notify the user of this unsolicited event. This results in a number of problems. Firstly, it is necessary to install a dedicated piece of software on the user's computer, which results in additional maintenance requirements from the point of view of a network manager if there are upgrades to the software or if a new user needs to be configured on the network.
While the software can be implemented as installed components within a browser (such as ActiveX controls or Java Applets), these components take time to download over the network and require support from the browser. In addition, security clearance must be given in order to operate such components.
Components such as this also require open, dedicated and non-standard communication channels to a CTI server. This can cause problems with firewalls in that additional ports need to be opened which can result in insecure communications and leave a computer open to attacks via the Internet or from other networks.